﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using SIM.Geo.BE;
using System.Data;

namespace SIM.Geo.DA
{
    public class DADistribucionTrabajo: Base 
    {
        #region Metodos
        /// <summary>
        /// Método que devuelve la lista de DistribucionTrabajo
        /// </summary>
        /// <returns></returns>
        public List<DistribucionTrabajo> ListarDistribucionTrabajo(int codigoAvanceDiario)
        {
            return this.Context.DistribucionTrabajo.Where(x => x.CodigoAvanceDiario == codigoAvanceDiario).ToList();
        }
        /// <summary>
        /// Método para insertar una DistribucionTrabajo
        /// </summary>
        /// <param name="DistribucionTrabajo"></param>
        /// <returns></returns>
        public int InsertarDistribucionTrabajo(DistribucionTrabajo distribucionTrabajo)
        {
            this.Context.DistribucionTrabajo.AddObject(distribucionTrabajo);
            this.Context.SaveChanges();
            return distribucionTrabajo.CodigoTarea;
        }
        /// <summary>
        /// Método para modificar un DistribucionTrabajo
        /// </summary>
        /// <param name="DistribucionTrabajo"></param>
        public void ModificarDistribucionTrabajo(DistribucionTrabajo distribucionTrabajo)
        {
            this.Context.DistribucionTrabajo.Attach(distribucionTrabajo);
            this.Context.ObjectStateManager.ChangeObjectState(distribucionTrabajo, EntityState.Modified);
            this.Context.SaveChanges();
        }
        /// <summary>
        /// Método para eliminar DistribucionTrabajo
        /// </summary>
        /// <param name="DistribucionTrabajo"></param>
        public void EliminarDistribucionTrabajo(DistribucionTrabajo distribucionTrabajo)
        {
            this.Context.DistribucionTrabajo.DeleteObject(distribucionTrabajo);
            this.Context.SaveChanges();
        }
        /// <summary>
        /// Método que busca por nombre DistribucionTrabajo
        /// </summary>
        /// <param name="nombre"></param>
        /// <returns></returns>
        public List<listarAvanceDiarioDistribucionTrabajo_Result> ListarAvanceDiarioDistribucionTrabajo(int codigoAvanceDiario)
        {
            return this.Context.listarAvanceDiarioDistribucionTrabajo(codigoAvanceDiario).ToList();
        }
        /// <summary>
        /// Método que devuelve DistribucionTrabajo por codigo
        /// </summary>
        /// <param name="codigoDistribucionTrabajo"></param>
        /// <returns></returns>
        public DistribucionTrabajo ObtenerDistribucionTrabajo(int codigoAvanceDiario, int codigoTarea)
        {
            return this.Context.DistribucionTrabajo.Where(x => x.CodigoAvanceDiario.Equals(codigoAvanceDiario) && x.CodigoTarea.Equals(codigoTarea)).FirstOrDefault();
        }
        #endregion
    }
}
